Molecule desing support apparatus and computer-readable storage medium

ABSTRACT

A molecule design support apparatus has an input part, a display to display on a screen thereof a three-dimensional molecular structure by a half vector format or a ball-and-stick format, and a determining part to determine, in the molecular structure, an end that is to become a target of a coordinate modification with respect to a molecule in its entirety, in response to a bond axis of the molecule specified from the input part. The apparatus further has a modifying part to make a modification of the molecular structure based on the specified bond axis and the end that is the target of the coordinate modification, in response to the modification specified from the input part, and a display part to display a modified molecular structure on the screen of the display based on a determination made by the determining part and the modification made by the modifying part.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to molecule design supportapparatuses and computer-readable storage media, and more particularlyto a molecule design support apparatus for making a three-dimensionaldisplay of a molecular structure and performing a molecular structureassembling operation and to a computer-readable storage medium thatstores a program for causing a computer to carry out such a molecularstructure assembling operation.

The molecular design support apparatus and the computer-readable storagemedium according to the present invention include Graphical UserInterfaces (GUIs) and molecular design support tools.

2. Description of the Related Art

Due to the realization of high-performance computer systems, there areincreased demands to make theoretical chemistry computations, such ascomputations of molecular orbits and molecular dynamics, in research ofadvanced technologies such as drug design. In order to execute suchtheoretical chemistry computations, it is necessary to use, as inputdata, not only the computation method but also the structure of themolecule that is the computation target. In the research of advancedtechnologies such as drug design, it is often necessary to search for anew molecular structure that can improve the effects of the propertysuch as the polarizability, and for this reason, there are increaseddemands to assemble an arbitrary molecular structure. In order tosatisfy such demands and to improve the work efficiency when assemblingthe molecular structure, various molecule design systems utilizing thegraphic display function have been proposed. For example, JapaneseLaid-Open Patent Applications No. 5-174109 and No. 5-128218, andhttp://software.fujitsu.com/jp/products/indust11.html, WinMOPAC (FujitsuLimited) and CAChe (Fujitsu Limited) propose such molecule designsystems.

The conventional technique for modifying the molecular structuretolerates, in most cases, a modification of only a bond direction thatis determined for each type of atom, thereby inhibiting an arbitrarymodification of the molecular structure. In addition, in a molecularstructure assembling system which enables an arbitrary modification ofthe molecular structure, similarly to the GUI of the WinMOPACmanufactured by Fujitsu Limited, when internal coordinates of themolecule called the Z-matrix are used, only the bond angle and thedihedral angle included in the internal coordinates become the modifyingtargets. But because only the dihedral angle can be set from onedirection in the internal coordinates, it is difficult to easily make anarbitrary modification of the molecular structure. In addition, in themolecular structure assembling system typified by the WinMOPAC, when arotation operation is made with respect to the molecular structurehaving the ring structure, a portion that participates in the rotationand a portion that does not participate in the rotation become connecteddue to the ring formed thereby, and there was a problem in that adesired molecular structure cannot be obtained in many cases because theportion that was not intended to be modified is actually modified by theoperation.

SUMMARY OF THE INVENTION

One object of the present invention is to provide a molecule designsupport apparatus including an input part; a display configured todisplay on a screen thereof a three-dimensional molecular structure by ahalf vector format or a ball-and-stick format; a determining partconfigured to determine, in the molecular structure, an end that is tobecome a target of a coordinate modification with respect to a moleculein its entirety, in response to a bond axis of the molecule specifiedfrom the input part; a modifying part configured to make a modificationof the molecular structure based on the specified bond axis and the endthat is the target of the coordinate modification, in response to themodification specified from the input part, said modification includingat least one of a free rotation around an atom, a rotation around a bondaxis, an angular modification between two axes, a modification of adihedral angle, and an expansion and contraction of a bond axis; and adisplay part configured to display a modified molecular structure on thescreen of the display based on a determination made by the determiningpart and the modification made by the modifying part. According to themolecule design support apparatus of the present invention, it ispossible to easily execute a desired molecular structure modifyingoperation, without being affected by an initial structure and initialcoordinates, and without resulting in an unintended structure.

Another object of the present invention is to provide acomputer-readable storage medium which stores a program for causing acomputer, having an input part, to realize a molecule design supportfunction, said program including a determining procedure causing thecomputer to determine, in a three-dimensional molecular structure thatis displayed by a half vector format or a ball-and-stick format on ascreen of a display, an end that is to become a target of a coordinatemodification with respect to a molecule in its entirety, in response toa bond axis of the molecule specified from the input part; a modifyingprocedure causing the computer to make a modification of the molecularstructure based on the specified bond axis and the end that is thetarget of the coordinate modification, in response to the modificationspecified from the input part, said modification including at least oneof a free rotation around an atom, a rotation around a bond axis, anangular modification between two axes, a modification of a dihedralangle, and an expansion and contraction of a bond axis; and a displayprocedure causing the computer to display a modified molecular structureon the screen of the display based on a determination made by thedetermining procedure and the modification made by the modifyingprocedure. According to the computer-readable storage medium of thepresent invention, it is possible to easily execute a desired molecularstructure modifying operation, without being affected by an initialstructure and initial coordinates, and without resulting in anunintended structure.

Other objects and further features of the present invention will beapparent from the following detailed description when read inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram for explaining data structures;

FIG. 2 is a diagram for explaining how the data structure is set bytaking formic acid (HCOOH) as an example;

FIG. 3 is a diagram for explaining a half vector format display;

FIG. 4 is a diagram for explaining a ball-and-stick format display;

FIG. 5 is a perspective view showing a computer system applied with thepresent invention;

FIG. 6 is a system block diagram showing a structure of an importantpart of a main body within the computer system;

FIG. 7 is a flow chart for explaining a formation of an initial datastructure;

FIG. 8 is a diagram for explaining a rotation around a bond axis;

FIG. 9 is a diagram for explaining a free rotation around an atom bytaking formic acid (HCOOH) as an example;

FIG. 10 is a flow chart for explaining the free rotation around theatom;

FIG. 11 is a flow chart for explaining the free rotation around theatom;

FIG. 12 is a diagram showing a display screen when making a freerotation operation around the atom;

FIG. 13 is a diagram showing a display screen when making the freerotation operation around the atom;

FIG. 14 is a diagram for explaining the rotation around the bond axis;

FIG. 15 is a diagram for explaining the rotation around the bond axis bytaking formic acid (HCOOH) as an example;

FIG. 16 is a flow chart for explaining the rotation around the bondaxis;

FIG. 17 is a flow chart for explaining the rotation around the bondaxis;

FIG. 18 is a diagram showing a display screen when making the rotationoperation around the bond axis;

FIG. 19 is a diagram showing a display screen when making the rotationoperation around the bond axis;

FIG. 20 is a diagram for explaining an angle modification between twoaxes;

FIG. 21 is a diagram for explaining the angle modification between twoaxes by taking formic acid (HCOOH) as an example;

FIG. 22 is a flow chart for explaining the angle modification betweentwo axes;

FIG. 23 is a flow chart for explaining the angle modification betweentwo axes;

FIG. 24 is a diagram showing a display screen when making an anglemodifying operation between two axes;

FIG. 25 is a diagram showing a display screen when making the anglemodifying operation between two axes;

FIG. 26 is a diagram for explaining a modification of a dihedral angle;

FIG. 27 is a diagram for explaining the modification of the dihedralangle by taking formic acid (HCOOH) as an example;

FIG. 28 is a flow chart for explaining the modification of the dihedralangle;

FIG. 29 is a flow chart for explaining the modification of the dihedralangle;

FIG. 30 is a diagram showing a display screen when making a modifyingoperation of the dihedral angle;

FIG. 31 is a diagram showing a display screen when making the modifyingoperation of the dihedral angle;

FIG. 32 is a diagram for explaining expansion and contraction of a bondaxis;

FIG. 33 is a diagram for explaining the expansion and contraction of thebond axis by taking formic acid (HCOOH) as an example;

FIG. 34 is a flow chart for explaining the expansion and contraction ofthe bond axis;

FIG. 35 is a flow chart for explaining the expansion and contraction ofthe bond axis;

FIG. 36 is a diagram showing a display screen when making the expansionand contraction operation of the bond axis; and

FIG. 37 is a diagram showing a display screen when making the expansionand contraction operation of the bond axis.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

When making a molecular structure modifying operation in the presentinvention, the data structures shown in FIG. 1, that is, an atom datastructure A, a bond axis data structure B and a molecule data structureM, are used. In the data structures shown in FIG. 1, the atom datastructure A and the bond axis data structure B respectively differ fromthe conventionally used data structures in that both include datacorresponding 1:1 with respect to all of the atoms and the bond axes,and in that both include an event flag and an identification flag. InFIG. 1, numerals 1, 2, . . . , 7, . . . are assigned to each of theconstituent elements (or items) of each of the data structures A, B andM, and data in brackets “[ ]” indicate that the data are not essential.

In the atom data structure A, an identification number “a” is made up ofan atomic sequence number in the internal coordinates, and an atomnumber (or number of atoms) is made up of the chemical symbol. A bondaxis number (or number of bond axes) is made up of a numerical valuethat varies when an arbitrary new molecular structure is added to theoriginal molecule. An initial value of the bond axis number indicatesthe bond number that is estimated from an input structure as forming theatom pair based on the van der Waals radius. The identification numberof the bond axis is made up of a set data of an identification number“b” of each bond axis included in the bond axis number. The event flagindicates the present type of event with respect to the events of themolecular structure forming GUI, such as a rotation operation, anexpansion and contraction operation, a delete operation, an addoperation and a replace operation. The identification flag is used tocheck whether or not the molecular structure has a ring structure, inorder to prevent an unintended structure from being obtained. Cartesiancoordinates are made up of data indicating a position within athree-dimensional space where each atom is located.

In the bond axis data structure B, the identification number “b” is madeup of the number that is necessary to make all of the bond axescorrespond 1:1 with each other. A bond type is made up of dataidentifying the type of bond axis, such as the single bond and thedouble bond. When forming an arbitrary molecular structure, the bondtype is not essential. An identification number of the terminal atom ismade up of a set data of the identification number “a” of the atomexisting at both terminals of the bond axis, and a data number is 2. Theevent flag and the identification flag are the same as the event flagand the identification flag of the atom data structure A. Vectorinformation includes information indicating a 1:1 correspondence betweenthe bond axis and a three-dimensional vector. When representing thevector information by a unit vector, it is also necessary to include inthe bond axis data structure B a bond axis length that indicates thelength of the bond axis.

The molecule data structure M includes both the atom data structure Aand the bond axis data structure B that hold mutual data. In order tocope with the delete operation and the add operation, the molecule datastructure M includes the atom number, the bond axis number, eventinformation and the event flag. The molecule data structure M mayinclude the identification flag if necessary.

A description will be given of how the data structures shown in FIG. 1are set when the data of the molecular structure are given, inconjunction with FIG. 2, by taking formic acid (HCOOH) as an example. InFIG. 2, “A{ }” indicates the atom data structure A, “B{ }” indicates thebond axis data structure B, and “M{ }” indicates the molecule datastructure M. In addition, “a[ ]” is an array that holds theidentification number of the bond axis included in the bond axis datastructure B, and the array number is 2. Further, “b[ ]” indicates anarray that holds the identification number of the bond axis included inthe atom data structure A, and the array number is the bond axis numberincluded in the atom data structure A. The chemical symbol data includedin the atom data structure A may be the atom number. Hence, for the sakeof convenience, FIG. 2 shows the item numbers 1 to 4 of the atom datastructure A, the item numbers 1 and 3 of the bond axis data structure B,and the item numbers 1 to 4 of the molecule data structure M.

When making the molecular structure modifying operation, a main windowfor work is displayed on a screen of a display, for example, and athree-dimensional molecular structure is displayed in the main windowwith a half vector format shown in FIG. 3 or a ball-and-stick formatshown in FIG. 4. By making an operation from an input part, such asclicking a pointing device, making a drag-and-drop operation of thepointing device and operating a keyboard, at least one bond axis of themolecule is displayed in the main window. If necessary, one of twoterminal atoms of the bond axis is specified in the ball-and-stickformat so as to further determine the end (or side) that becomes thetarget of the coordinate modification with respect to the bond axis, anda continuous modifying operation of the molecular structure, such as afree rotation around the atom, a rotation around the bond axis, an anglemodification between two axes, a modification of the dihedral angle, andexpansion and contraction of the bond axis, so as to display the newlyformed molecular structure in the main window.

Accordingly, it is possible to easily execute a desired molecularstructure modifying operation, without being affected by the initialstructure and the initial coordinates, and without resulting in anunintended structure.

An embodiment of the molecule design support apparatus according to thepresent invention may employ an embodiment of the computer-readableprogram according to the present invention. The computer-readableprogram may be stored in an embodiment of the computer-readable storagemedium according to the present invention. In this embodiment, thepresent invention is applied to a computer system. FIG. 5 is aperspective view showing a computer system applied with the presentinvention.

A computer system 100 shown in FIG. 5 includes a main body 101 that hasa built-in CPU, disk drive and the like, a display 102, a keyboard 103,a mouse 104, and a modem 105. The display 102 has a display screen 102 aon which images of molecules and the like formed by a molecule formingsimulation are displayed in response to an instruction from the mainbody 101. The keyboard 103 is used to input various information to thecomputer system 100. The mouse 104 is used to specify an arbitraryposition on the display screen 102 a of the display 102. The modem 105is used to make access to an external database or the like and todownload programs and the like stored in other computer systems.

A program (molecule design support software or tool) for causing thecomputer system 100 to have at least a molecule design support function,is input to the computer system 100 and compiled therein. This programof the present invention may be stored in a portable recording mediumsuch as a disk 110 or, downloaded from a recording medium 106 of anothercomputer system using a communication apparatus such as the modem 105.This program causes the computer system 100 (that is, a CPU 201 whichwill be described later) to operate as a molecule design supportapparatus (or a simulation system) having the molecule design supportfunction. This program may be stored in this embodiment of thecomputer-readable storage medium, such as the disk 110. Thecomputer-readable storage medium is not limited to portable recordingmedia such as the disk 110, IC card memories, magnetic disks such asfloppy disks, magneto-optical disks and CD-ROMs, and includes variousrecording media that are accessible by a computer system which isconnected to the computer system 100 via the communication apparatus orcommunication means such as the modem 105 and the LAN.

FIG. 6 is a system block diagram showing a structure of an importantpart of the main body 101 within the computer system 100. The main body101 has the CPU 201, a memory part 202 made up of a RAM, a ROM and thelike, a disk drive 203 for the disk 110, and a Hard Disk Drive (HDD) 204that are connected via a bus 200. In this embodiment, the display 102,the keyboard 103 and the mouse 104 are also connected to the CPU 201 viathe bus 200, however, each of the display 102, the keyboard 103 and themouse 104 may be connected directly to the CPU 201. In addition, thedisplay 102 may be connected to the CPU 201 via a known graphicinterface (not shown) which processes input and output image data.

In the computer system 100, the keyboard 103 and/or the mouse 104 forman input part of the molecule design support apparatus. The display 102displays a three-dimensional molecular structure on the screen 102 a inthe half vector format or the ball-and-stick format. The CPU 201functions as a determining part or means for determining, based on thebond axis specified from the input part, the end (or side) that becomesthe target of the coordinate modification with respect to at least thebond axis that is specified, a modifying part or means for making amodification to the molecular structure, including a rotation around thespecified bond axis or expansion and contraction of the specified bondaxis, based on the modification specified from the input part, and adisplay part or means for displaying the modified molecular structure onthe screen 102 a of the display 102.

The structure of the computer system 100 is of course not limited to thestructure shown in FIGS. 5 and 6, and a computer system having any knownsuitable structure may be used in place of the computer system 100.

FIG. 7 is a flow chart for explaining a formation of an initial datastructure. The process shown in FIG. 7 is carried out by the CPU 201.

In FIG. 7, a step S1 declares an atomic data structure having the atomdata structure A shown in FIG. 1, and a bond axial data structure havingthe bond axis data structure B shown in FIG. 1. A step S2 declares amolecular data structure having the molecule data structure M shown inFIG. 1, as a structure including the atomic data structure and the bondaxial data structure. A step S3 reads Cartesian or Z-matrix coordinatedata from a file within a storage part, and stores the atom number inthe molecule data structure M. The storage part may be formed by thememory part 202, the disk drive 203 or the HDD 204 within the computersystem 100 or, by the recording medium 106 or the like external to thecomputer system 100. A step S4 transforms the read coordinate data intothe Cartesian coordinate data if the read coordinate data is theZ-matrix coordinate data, stores the Cartesian coordinate data in thecoordinates and the atom number of the atom data structure A, and setsthe identification number in the storing order. A step S5 computes thebond length between all of the atoms using atomic coordinates.

A step S6 forms a bond axis between the atoms that are separated by adistance less than or equal to an arbitrarily set threshold value. Astep S7 sets the identification number of the bond axis data structure Bin the forming order, and stores the bond axis number in the moleculardata structure. A step S8 stores the vector of the bond axis in the bondaxial data structure. A step S9 stores the identification numbers of thetwo atoms participating in the bond axis to the identification number ofthe bond axial data structure. A step S10 extracts the identificationnumber of the bond axis related to each atom, and stores theidentification number and the total number in the atomic data structure,and the process ends. Hence, with respect to the data of a givenmolecular structure, the initial data structure is formed from the atomdata structure A, the bond axis data structure B and the molecule datastructure M shown in FIG. 1.

(Free Rotation Around Atom)

FIG. 8 is a diagram for explaining a rotation around a bond axis. FIG. 8shows a state where the atom that is the rotation target is bonded to afixed atom via a bond axis that is a rotary axis in this case, and thisfixed atom is bonded to immobile atoms via bond axes.

With respect to the data structures shown in FIG. 1 prepared by the userby the process shown in FIG. 7, one item of the bond axis data structureB is selected. If it is assumed for the sake of convenience that theselected item is an identification number b1, a selection bit of theevent flag belonging to the bond axis data having the identificationnumber b1 is set. In this state, when the event information of themolecule data structure M is set to “free rotation around atom”, a “freerotation around atom” bit is set in the event flag of the molecule datastructure M, and the selection bit of the identification flag of allbond axis set data linked by bond axes other than the bond axis datahaving the identification number b1 is set, with respect to bothterminal atoms (having identification numbers a1 and a2) of the bondaxis data having the identification number b1. If the terminal atoms ofthe bond axis include the atom having the identification number a1 ora2, it is determined that the bond axis data having the identificationnumber b1 belongs to the inside of a ring structure. In this case, aring bit of the identification flag belonging to the terminal atom datais set. With respect to the bond axis set belonging to the terminal atomdata in which the ring bit is set, the selection bit of theidentification flag is cleared (or reset) so as to exclude the bond axisset from the target of the rotation operation. If the ring bit is notset, the number of selection bits of the bond axes linked from the atomhaving the identification number a1 and the number of selection bits ofthe bond axes linked from the atom having the identification number a2are compared, and the smaller number of selection bits is maintainedwhile the larger number of selection bits is cleared (or reset).Thereafter, the bond axis having the selection bit is represented as therotation target. In addition, the bond axes having the selectedidentification number b1 is also included in the rotation target.

If not only the bond axis but one of the terminal atoms is alsoselected, the operation described above is carried out only with respectto the bond axis set linked to the selected atom or the atom that is notselected.

The three-dimensional rotation array around the atom or the quatemion iscomputed by making a drag-and-drop by the pointing device on thedisplayed molecular structure or, is determined by making adrag-and-drop in a command area other than a molecule display area inthe main window or by setting the angle from the keyboard, and theprocess moves to the rotation operation. When the three-dimensionalrotation array around the atom or the quatemion is specified by thedrag-and-drop, the rotation operation is continuously carried during thedragging.

The rotation operation sets the “free rotation around atom” bit to theevent flag of the bond axis data having the specified identificationnumber b1, and makes the three-dimensional rotation array or thequatemion act on the bond axis that is the rotation target. Thereafter,the vector information of the bond axis is traced from one appropriateatom so as to reform the Cartesian coordinates of the atom datastructure A, and the modified molecular structure is displayed in themain window.

FIG. 9 is a diagram for explaining the free rotation around the atom bytaking formic acid (HCOOH) as an example. FIGS. 10 and 11 are flowcharts for explaining the free rotation around the atom, and FIGS. 12and 13 are diagrams showing a display screen when making the freerotation operation around the atom. FIG. 10 shows the process from theoperation of selecting the bond axis item (also the atom item ifnecessary) up to the setting of a ring existence flag, and FIG. 11 showsthe process from the setting of the rotation target and the rotationcomputation up to the actual modification of the structure.

In FIG. 10, a step S101 selects an arbitrary bond axis Bi. It is assumedfor the sake of convenience that terminal atoms of the bond axis Bi areA_(B1) and A_(B2). A step S102 sets a rotation angle adjusting flag,that is, sets the “rotation around bond axis” bit to the eventinformation flag of the molecular data. A step S103 judges whether ornot only the bond axis Bi is selected as the bond axis and only theterminal atom A_(B1) (or A_(B2)) is selected. If the judgement result inthe step S103 is NO, the process advances to a step S126 shown in FIG.11 which will be described later. On the other hand, if the judgementresult in the step S103 is YES, a step S104 judges whether or not theterminal atom A_(B1) (or A_(B2)) has a bond axis Bi′ that is not yetset. If the judgement result in the step S104 is NO, the processadvances to a step S112 shown in FIG. 11 which will be described later.

If the judgement result in the step S104 is YES, a step S105 sets theattribute of the bond axis Bi′ to R_(B1) (or R_(B2)), and moves to theterminal atom opposite to the terminal atom A_(B1) (or A_(B2)) withrespect to the bond axis Bi′. A step S106 judges whether or not thepresent atom has a bond axis that has not yet been set. If the judgementresult in the step S106 is YES, a step S107 sets the attribute of thebond axis that is not yet set to R_(B1) (or R_(B2)), and moves to theterminal atom on the opposite end. If the judgement result in the stepS106 is NO, a step S108 moves to the immediately preceding atom, thatis, the atom on the opposite end of the bond axis that is set. After thestep S107 or S108, a step S109 judges whether or not the present atom isA_(B2) (or A_(B1)) If the judgement result in the step S109 is NO, astep S110 judges whether or not the present atom is A_(B1) (or A_(B2))On the other hand, if the judgement result in the step S109 is YES, astep S111 sets “true” to the ring existence flag (sets the ring bit ofthe identification flag). If the judgement result in the step S110 isYES, the process returns to the step S104. If the judgement result inthe step S110 is NO or, after the step S111, the process returns to thestep S106.

In FIG. 11, the step S112 judges whether or not the ring existence flagis “false” (the ring bit of the identification flag is not set). If thejudgement result in the step S112 is NO, the process advances to thestep S126 which will be described later. If the judgement result in thestep S112 is YES, a step S113 judges whether or not the atom A_(B1) is afixed end. If the judgement result in the step S113 is YES, a step S114sets the bond axis of the attribute R_(B2) and the bond axis Bi to thevector that is the target of the rotation operation, and the processadvances to a step S116. On the other hand, if the judgement result inthe step S113 is NO, a step S115 sets the bond axis of the attributeR_(B1) and the bond axis Bi to the vector that is the target of therotation operation, and the process advances to the step S116.

The step S116 judges whether or not the rotation is directly operated onthe screen 102 a. If the judgement result in the step S116 is NO, a stepS117 acquires rotation information φ and θ from the values input fromthe input part according to a menu or sub-menu on the screen 102 a. Astep S118 carries out a rotation operation with respect to the targetvector based on the rotation information φ and θ, and a step S119reforms the molecular structure by modifying the atomic coordinatesbased on the acquired vector information. After the step S119, theprocess advances to the step S126 which will be described later.

On the other hand, if the judgement result in the step S116 is YES, astep S120 sets the rotation information φ from the screen horizontalrange and the horizontal movement vector on the screen 102 a caused bythe drag-and-drop of the mouse 104, and a step S121 sets the rotationinformation θ from the screen vertical range and the vertical movementvector on the screen 102 a caused by the drag-and-drop of the mouse 104.A step S122 carries out a rotation operation with respect to the targetvector based on the rotation information φ and θ, and a step S123reforms the molecular structure by modifying the atomic coordinatesbased on the acquired vector information. A step S124 judges whether ornot the rotation operation has ended, and the process returns to thestep S120 if the judgement result in the step S124 is NO. If thejudgement result in the step S124 is YES, a step S125 clears (or resets)the selection of the bond axis that is the rotation operation target. Inaddition, the step S126 clears (or resets) the set information, and theprocess ends.

Accordingly, first, the bond axis B2 shown in FIG. 9 is selected. Whenthe rotation angle adjusting flag is set (the “free rotation aroundatom” bit is set to the event information flag of the molecular data)after this selection, a bond axis set (or group) R_(A1) (B1, B3) linkedto the bond axes not including the bond axis B2 is selected using theterminal atom A1 as the base point according to a recursive process(algorithm) in the second half of the process shown in FIG. 10, and acheck is made to determine whether or not the ring existence flag is tobe set to “true” (whether or not to set the ring bit of theidentification flag belonging to a terminal atom A3 with respect to thebond axis set R_(A1)). In this case, the bond axis set having the ringexistence flag that is “true” is excluded from the rotation operationtarget (the selection bit of the identification flag is cleared). If thering existence flag of the bond axis set R_(A1) is “true”, the rotationoperation target no longer exists, and thus, the set information iscleared and the rotation operation is ended.

On the other hand, if the ring existence flag of the bond axis setR_(A1) is “false”, the bond axis set having the large bond axis numberis excluded from the rotation operation target (the selection bit of theidentification flag is cleared). By these operations, thethree-dimensional molecular structure that is displayed in the mainwindow on the screen 102 a of the display 102 becomes as shown in FIG.12. Because the formic acid (HCOOH) shown in FIG. 12 does not have aring structure, the rotation operation is possible in this state. Sincethe bond axis set R_(A3) has the smaller bond axis number, only theselection bit of the bond axis B3 is set.

If the rotation operation becomes possible by the processes describedabove, the selection bit is set to the bond axes B1, B2 and B3 includedin the bond axis set R_(A3), so as to set the bond axes B1, B2 and B3 asthe rotation targets, by the first half of the process (algorithm) shownin FIG. 11. This embodiment uses an algorithm that determines therotation array by aligning the mouse cursor to the molecule that isdisplayed in the main window and comparing the direction and the lengthof the drag-and-drop with the size of the screen 102 a. When therotation array is determined, the bond axes B1, B2 and B3 are subjectedto a rotation computation (or operation) by the second half of theprocess (algorithm) shown in FIG. 11 and respectively become bond axesB′1, B′2 and B′3, and the Cartesian coordinates of the atoms A1, A2 andA4 are modified to A′1, A′2 and A′4 by adding the vector from the atomA3, so as to modify the molecular structure in the main window. When themouse 104 is released, it is regarded that the rotation has ended, andthe rotation operation is ended by clearing the selection informationand the set information. By these operations, the three-dimensionalmolecular structure displayed in the main window on the screen 102 a ofthe display 102 becomes as shown in FIG. 13. FIG. 13 shows the resultfor a case where the drag-and-drop of the mouse 104 that determines therotation array is made by moving the mouse 104 obliquely upwards towardsthe right.

In FIG. 9, it is assumed for the sake of convenience that B2 is theselected bond axis, the ring flag is “false”, A1 is the atom at thefixed end, B1, B2 and B3 are the bond axes that are the rotationtargets, and the rotation information is input by an operation on thescreen. If the rotation computation is denoted by R, B′1=RB1, B′2=RB2and B′3=RB3 stand, and the coordinate modification of A1, A2 and A4 arerespectively represented by A′1=A3+B′2, A′2=A′1+B′1 and A′4=A′1+B′3.

(Rotation Around Bond Axis)

FIG. 14 is a diagram for explaining the rotation around the bond axis.FIG. 14 shows a state where the atom that is the rotation target isbonded to a fixed atom via a bond axis that is a rotary axis.

With respect to the data structures shown in FIG. 1 prepared by the userby the process shown in FIG. 7, one item of the bond axis data structureB is selected. If it is assumed for the sake of convenience that theselected item is an identification number b1, a selection bit of theevent flag belonging to the bond axis data having the identificationnumber b1 is set. In this state, when the event information of themolecule data structure M is set to “rotation around bond axis”, a“rotation around bond axis” bit is set in the event flag of the moleculedata structure M, and the selection bit of the identification flag ofall bond axis set data linked by bond axes other than the bond axis datahaving the identification number b1 is set, with respect to bothterminal atoms (having identification numbers a1 and a2) of the bondaxis data having the identification number b1. If the terminal atoms ofthe bond axis include the atom having the identification number a1 ora2, it is determined that the bond axis data having the identificationnumber b1 belongs to the inside of a ring structure. In this case, aring bit of the identification flag belonging to the terminal atom datais set. With respect to the bond axis set belonging to the terminal atomdata in which the ring bit is set, the selection bit of theidentification flag is cleared (or reset) so as to exclude the bond axisset from the target of the rotation operation. If the ring bit is notset, the number of selection bits of the bond axes linked from the atomhaving the identification number a1 and the number of selection bits ofthe bond axes linked from the atom having the identification number a2are compared, and the smaller number of selection bits is maintainedwhile the larger number of selection bits is cleared (or reset).Thereafter, the bond axis having the selection bit is represented as therotation target.

If not only the bond axis but one of the terminal atoms is alsoselected, the operation described above is carried out only with respectto the bond axis set linked to the selected atom or the atom that is notselected.

The rotation angle around the bond axis is computed by making adrag-and-drop by the pointing device on the displayed molecularstructure or, is determined by making a drag-and-drop in a command areaother than a molecule display area in the main window or by setting theangle from the keyboard, and the process moves to the rotationoperation. When the rotation angle around the bond axis is specified bythe drag-and-drop, the rotation operation is continuously carried duringthe dragging.

The rotation operation sets the “rotation around bond axis” bit to theevent flag of the bond axis data having the specified identificationnumber b1, and sets to the rotary axis the direction of the rotationtarget from the fixed end. The rotation operation computes the rotationarray or the quatemion from the rotary axis and the rotation angle, andmakes the rotation array or the quatemion act on the bond axis that isthe rotation target. Thereafter, the vector information of the bond axisis traced from one appropriate atom so as to reform the Cartesiancoordinates of the atom data structure A, and the modified molecularstructure is displayed in the main window.

FIG. 15 is a diagram for explaining the rotation around the bond axis bytaking the formic acid (HCOOH) as an example. FIGS. 16 and 17 are flowcharts for explaining the rotation around the bond axis, and FIGS. 18and 19 are diagrams showing a display screen when making the rotationoperation around the bond axis. FIG. 16 shows the process from theoperation of selecting the bond axis item (also the atom item ifnecessary) up to the setting of a ring existence flag, and FIG. 17 showsthe process from the setting of the rotation target and the rotationcomputation up to the actual modification of the structure.

In FIG. 16, a step S11 selects an arbitrary bond axis Bi. It is assumedfor the sake of convenience that terminal atoms of the bond axis Bi areA_(B1) and A_(B2). A step S12 sets a rotation angle adjusting flag, thatis, sets the “rotation around bond axis” bit to the event informationflag of the molecular data. A step S13 judges whether or not only thebond axis Bi is selected as the bond axis and no atom is selected oronly the terminal atom A_(B1) (or A_(B2)) is selected. If the judgementresult in the step S13 is NO, the process advances to a step S39 shownin FIG. 17 which will be described later. On the other hand, if thejudgement result in the step S13 is YES, a step S14 judges whether ornot the terminal atom A_(B1) (or A_(B2)) has a bond axis Bi′ that is notyet set. If the judgement result in the step S14 is NO, the processadvances to a step S22 shown in FIG. 17 which will be described later.

If the judgement result in the step S14 is YES, a step S15 sets theattribute of the bond axis Bi′ to R_(B1) (or R_(B2)), and moves to theterminal atom opposite to the terminal atom A_(B1) (or A_(B2)) withrespect to the bond axis Bi′. A step S16 judges whether or not thepresent atom has a bond axis that has not yet been set. If the judgementresult in the step S16 is YES, a step S17 sets the attribute of the bondaxis that is not yet set to R_(B1) (or R_(B2)), and moves to theterminal atom on the opposite end. If the judgement result in the stepS16 is NO, a step S18 moves to the immediately preceding atom, that is,the atom on the opposite end of the bond axis that is set. After thestep S17 or S18, a step S19 judges whether or not the present atom isA_(B2) (or A_(B1)). If the judgement result in the step S19 is NO, astep S20 judges whether or not the present atom is A_(B1) (or A_(B2)) .On the other hand, if the judgement result in the step S19 is YES, astep S21 sets “true” to the ring existence flag (sets the ring bit ofthe identification flag). If the judgement result in the step S20 isYES, the process returns to the step S14. If the judgement result in thestep S20 is NO or, after the step S21, the process returns to the stepS16.

In FIG. 17, the step S22 judges whether or not the ring existence flagis “false” (the ring bit of the identification flag is not set). If thejudgement result in the step S22 is NO, the process advances to the stepS39 which will be described later. If the judgement result in the stepS22 is YES, a step S23 judges whether or not the atom A_(B1) (or A_(B2))has been selected. If the judgement result in the step S23 is YES, astep S24 sets the atom A_(B1) (or A_(B2)) to the fixed end. If thejudgement result in the step S23 is NO, a step S25 judges whether or notthe atom number of the attribute R_(B1) is lager than the atom number ofthe attribute R_(B2). If he judgement result in the step S25 is YES, astep S26 sets the atom A_(B1) to the fixed end. If the judgement resultin the step S25 is NO, a step S27 sets the atom A_(B2) to the fixed end.After the step S24 or, the step S26 or, the step S27, the processadvances to a step S28.

The step S28 judges whether or not the atom A_(B1) is the fixed end. Ifthe judgement result in the step S28 is YES, a step S29 sets the bondaxis of the attribute R_(B2) to the vector that is the target of therotation operation, and a step S30 sets the vector A_(B1)→A_(B2) to therotary axis. On the other hand, if the judgement result in the step S28is NO, a step S31 sets the bond axis of the attribute R_(B1) to thevector that is the target of the rotation operation, and a step S32 setsthe vector A_(B2)→A_(B1) to the rotary axis. After the step S30 or S32,the process advances to a step S33.

The step S33 sets the initial value of the rotation angle around thebond axis. A step S34 adjusts the rotation angle. A step S35 acquiresrotation angle information corresponding to a difference between theprevious rotation angle and the present rotation angle, and carries outa rotation operation with respect to the vector that is the target (thatis, the target vector). A step S36 reforms the molecular structure bymodifying the atomic coordinates based on the acquired vectorinformation. A step S37 judges whether or not the adjustment of therotation angle has ended, and the process returns to the step S34 if thejudgement result in the step S37 is NO. If the judgement result in thestep S37 is YES, a step S38 clears (or resets) the selection of the bondaxis that is the rotation operation target. In addition, the step S39clears (or resets) the set information, and the process ends.

Accordingly, first, the bond axis B2 shown in FIG. 15 is selected. Whenthe rotation angle adjusting flag is set (the “rotation around bondaxis” bit is set to the event information flag of the molecular data)after this selection, a bond axis set (or group) R_(A1) (B1, B3) linkedto the bond axes not including the bond axis B2 is selected using theterminal atom A1 as the base point according to a recursive process(algorithm) in the second half of the process shown in FIG. 16, and acheck is made to determine whether or not the ring existence flag is tobe set to “true” (whether or not to set the ring bit of theidentification flag belonging to a terminal atom A3 with respect to thebond axis set R_(A1), and whether or not to set the ring bit of theidentification flag belonging to the terminal atom A1 with respect tothe bond axis set R_(A3)). In this case, the bond axis set having thering existence flag that is “true” is excluded from the rotationoperation target (the selection bit of the identification flag iscleared). If the ring existence flag of both the bond axis sets R_(A1)and R_(A3) is “true”, the rotation operation target no longer exists,and thus, the set information is cleared and the rotation operation isended.

On the other hand, if the ring existence flag of both the bond axis setsR_(A1) and R_(A3) is “false”, the bond axis set having the large bondaxis number is excluded from the rotation operation target (theselection bit of the identification flag is cleared). By theseoperations, the three-dimensional molecular structure that is displayedin the main window on the screen 102 a of the display 102 becomes asshown in FIG. 18. Because the formic acid (HCOOH) shown in FIG. 18 doesnot have a ring structure, the rotation operation is possible in thisstate. Since the bond axis set R_(A3) has the smaller bond axis number,only the selection bit of the bond axis B3 is set.

If the rotation operation becomes possible by the processes describedabove, the selection bit is set to the bond axis B4 included in the bondaxis set R_(A3), so as to set the bond axis B4 as the rotation target,by the first half of the process (algorithm) shown in FIG. 17. Therotary axis of the bond axis B4 is set to a vector having the directionA1→A3 in a direction of the bond axis B2. This embodiment uses analgorithm that determines the rotation array from the rotary axis andthe rotation angle, by displaying a slide bar in the command window thatis displayed in the main window, and determining the rotation angle by adrag-and-drop of the slide bar by the mouse 104. When the rotation arrayis determined, the bond axis B4 is subjected to a rotation computation(or operation) by the second half of the process (algorithm) shown inFIG. 17 and becomes bond axis B′4, and the Cartesian coordinates of theatom A5 are modified to A′5 by adding the vector from the atom A3, so asto modify the molecular structure in the main window. When the mouse 104is released, it is regarded that the rotation has ended, and therotation operation is ended by clearing the selection information andthe set information. By these operations, the three-dimensionalmolecular structure displayed in the main window on the screen 102 a ofthe display 102 becomes as shown in FIG. 19. FIG. 19 shows the resultfor a case where a rotation of −133 degrees around the bond axis is madeby the drag-and-drop of the mouse 104.

In FIG. 15, it is assumed for the sake of convenience that B2 is theselected bond axis, the ring flag is “false”, A1 is the atom at thefixed end, B4 is the bond axis that is the rotation target, and A1→A3 isthe rotary axis. If the rotation computation is denoted by R, B′4=RB4stands, and the coordinate modification of A5 is represented byA′5=A3+B′4.

(Angle Modification Between Two Axes)

FIG. 20 is a diagram for explaining an angle modification between twoaxes. FIG. 20 shows a state where the atom that is the rotation targetis bonded to a fixed atom via a bond axis that is a rotary axis andstill another bond axis.

With respect to the data structures shown in FIG. 1 prepared by the userby the process shown in FIG. 7, two items of the bond axis datastructure B are selected. If it is assumed for the sake of conveniencethat the selected items are identification numbers b1 and b2, aselection bit of the event flag belonging to the bond axis data havingthe identification numbers b1 and b2 is set. In this state, when theevent information of the molecule data structure M is set to “anglemodification between two axes”, a “angle modification between two axes”bit is set in the event flag of the molecule data structure M, byregarding the bond axis data to be continuous (linked) only when theatomic data of one of the terminal atoms belonging to the bond axis datahaving the identification number b1 includes the bond axis having theidentification number b2. The selection bit of the identification flagof all bond axis set data linked by bond axes other than the bond axisdata having the identification numbers ab1 to b1 and the identificationnumbers ab2 to b2 is set, with respect to both terminal atoms (havingidentification numbers ab1 and ab2) of the bond axis data having theidentification numbers b1 and b2. If the terminal atoms of the bond axisinclude the atom having the identification number ab2 or ab1, it isdetermined that the bond axis data having the identification numbers b1and b2 belong to the inside of a ring structure. In this case, a ringbit of the identification flag belonging to the terminal atom data isset. With respect to the bond axis set belonging to the terminal atomdata in which the ring bit is set, the selection bit of theidentification flag is cleared (or reset) so as to exclude the bond axisset from the target of the rotation operation. If the ring bit is notset, the number of selection bits of the bond axes linked from the atomhaving the identification number ab1 and the number of selection bits ofthe bond axes linked from the atom having the identification number ab2are compared, and the smaller number of selection bits is maintainedwhile the larger number of selection bits is cleared (or reset).Thereafter, the bond axis having the selection bit is represented as therotation target.

If not only the two continuous bond axes but one of the terminal atomsis also selected, the operation described above is carried out only withrespect to the bond axis set linked to the selected atom or the atomthat is not selected.

The angle between two axes is computed by making a drag-and-drop by thepointing device on the displayed molecular structure or, is determinedby making a drag-and-drop in a command area other than a moleculedisplay area in the main window or by setting the angle from thekeyboard, and the process moves to the rotation operation. When theangle between two axes is specified by the drag-and-drop, the rotationoperation is continuously carried during the dragging.

The rotation operation sets the “angle modification between two axes”bit to the event flag of the bond axis data having the specifiedidentification numbers b1 and b2, and sets to the rotary axis a vectorthat is perpendicular to both the bond axes having the identificationnumbers b1 and b2. The rotation operation computes the rotation array orthe quatemion from the rotary axis and the rotation angle, and makes therotation array or the quatemion act on the bond axis that is therotation target. Thereafter, the vector information of the bond axis istraced from one appropriate atom so as to reform the Cartesiancoordinates of the atom data structure A, and the modified molecularstructure is displayed in the main window.

FIG. 21 is a diagram for explaining the angle modification between twoaxes by taking the formic acid (HCOOH) as an example. FIGS. 22 and 23are flow charts for explaining the angle modification between two axes,and FIGS. 24 and 25 are diagrams showing a display screen when makingthe angle modification between two axes. FIG. 22 shows the process fromthe operation of selecting the bond axis item (also the atom item ifnecessary) up to the setting of a ring existence flag, and FIG. 23 showsthe process from the setting of the rotation target and the rotationcomputation up to the actual modification of the structure.

In FIG. 22, a step S131 selects two arbitrary continuous bond axes Biand Bi′. It is assumed for the sake of convenience that terminal atomsof the bond axes Bi and Bi′ are A_(B), A_(BB′) and A_(B′). A step S132sets a rotation angle adjusting flag of the two bond axes Bi and Bi′,that is, sets the “angle modification between two axes” bit to the eventinformation flag of the molecular data. A step S133 judges whether ornot only the bond axes Bi and Bi′ are selected as the bond axes and noatom is selected or only the terminal atom A_(B) (or A_(B′)) isselected. If the judgement result in the step S133 is NO, the processadvances to a step S158 shown in FIG. 23 which will be described later.On the other hand, if the judgement result in the step S133 is YES, astep S134 judges whether or not the terminal atom A_(B) (or A_(B′)) hasa bond axis Bi″ that is not yet set. If the judgement result in the stepS134 is NO, the process advances to a step S142 shown in FIG. 23 whichwill be described later.

If the judgement result in the step S134 is YES, a step S135 sets theattribute of the bond axis Bi″ to R_(B) (or R_(B′)), and moves to theterminal atom opposite to the terminal atom A_(B) (or A_(B′)) withrespect to the bond axis Bi″. A step S136 judges whether or not thepresent atom has a bond axis that has not yet been set. If the judgementresult in the step S136 is YES, a step S137 sets the attribute of thebond axis that is not yet set to R_(B) (or R_(B′)), and moves to theterminal atom on the opposite end. If the judgement result in the stepS136 is NO, a step S138 moves to the immediately preceding atom, thatis, the atom on the opposite end of the bond axis that is set. After thestep S137 or S138, a step S139 judges whether or not the present atom isA_(B′) (or A_(B)) or A_(BB′). If the judgement result in the step S139is NO, a step S140 judges whether or not the present atom is A_(B) (orA_(B′)). On the other hand, if the judgement result in the step S139 isYES, a step S141 sets “true” to the ring existence flag (sets the ringbit of the identification flag). If the judgement result in the stepS140 is YES, the process returns to the step S134. If the judgementresult in the step S140 is NO or, after the step S141, the processreturns to the step S136.

In FIG. 23, the step S142 judges whether or not the ring existence flagis “false” (the ring bit of the identification flag is not set). If thejudgement result in the step S142 is NO, the process advances to thestep S158 which will be described later. If the judgement result in thestep S142 is YES, a step S143 judges whether or not the atom A_(B) (orA_(B′)) has been selected. If the judgement result in the step S143 isYES, a step S144 judges that the bond axis B (or B′) is a fixed axis. Ifthe judgement result in the step S143 is NO, a step S145 judges whetheror not the atom number of the attribute R_(B) is lager than the atomnumber of the attribute R_(B′). If he judgement result in the step S145is YES, a step S146 sets the bond axis Bi to the fixed axis. If thejudgement result in the step S145 is NO, a step S147 sets the bond axisBi′ to the fixed axis. After the step S144 or, the step S146 or, thestep S147, the process advances to a step S148.

The step S148 judges whether or not the bond axis Bi (or Bi′) is thefixed axis. If the judgement result in the step S148 is YES, a step S149sets the bond axis of the attribute R_(B′) and the bond axis Bi′ tovectors that are the target of the rotation operation, and a step S150sets a vector that is perpendicular to both the bond axes Bi and Bi′ tothe rotary axis. On the other hand, if the judgement result in the stepS148 is NO, a step S151 sets the bond axis of the attribute R_(B) andthe bond axis Bi to the vectors that are the target of the rotationoperation, and the process advances to the step S150.

A step S152 sets an angle formed by the bond axes Bi and Bi′ to theinitial value of the bond angle. A step S153 adjusts the bond angle. Astep S154 acquires rotation angle information corresponding to adifference between the previous rotation angle and the present rotationangle, and carries out a rotation operation with respect to the vectorthat is the target (that is, the target vector). A step S155 reforms themolecular structure by modifying the atomic coordinates based on theacquired vector information. A step S156 judges whether or not theadjustment of the bond angle has ended, and the process returns to thestep S153 if the judgement result in the step S156 is NO. If thejudgement result in the step S156 is YES, a step S157 clears (or resets)the selection of the bond axis that is the rotation operation target. Inaddition, the step S158 clears (or resets) the set information, and theprocess ends.

Accordingly, first, the bond axes B1 and B2 and the atom A2 shown inFIG. 21 are selected. Since the bond axes B1 and B2 are linked and theatom A2 is a terminal atom of the bond axis B1 and is not a terminalatom of the bond axis B2, the process can reach the second half of theprocess (algorithm) shown in FIG. 22. When the rotation angle adjustingflag is set (the “angle modification between two axes” bit is set to theevent information flag of the molecular data) after this selection, abond axis set (or group) R_(A3) (B4) linked to the bond axes notincluding the bond axis B2 is selected using the terminal atom A3, whichis the terminal atom of the bond axis B2 but not a terminal atom of thebond axis B1, as the base point according to a recursive process(algorithm) in the second half of the process shown in FIG. 22, and acheck is made to determine whether or not the ring existence flag is tobe set to “true” (whether or not to set the ring bit of theidentification flag belonging to the terminal atom A1, which is theterminal atom of both the bond axes B1 and B2) with respect to the bondaxis set R_(A3). If the ring existence flag of the bond axis set R_(A3)is “true”, the rotation operation target no longer exists, and thus, theset information is cleared and the rotation operation is ended. Becausethe formic acid (HCOOH) shown in FIG. 24 does not have a ring structure,the rotation operation is possible in this state.

If the rotation operation becomes possible by the processes describedabove, the selection bit is set to the bond axis B4 included in the bondaxis set R_(A3) and the selected bond axis B2 that does not include theatom A2 as its terminal atom, so as to set the bond axes B4 and B2 asthe rotation target, by the first half of the process (algorithm) shownin FIG. 23. The rotary axis is set to an outer product vector of avector V1 having the direction A1→A2 in a direction of the bond axis B1and a vector V2 having the direction A1→A3 in a direction of the bondaxis B2. This embodiment uses an algorithm that determines the rotationarray from the rotary axis and the rotation angle, by displaying a slidebar in the command window that is displayed in the main window, anddetermining the rotation angle by a drag-and-drop of the slide bar bythe mouse 104. The initial angle of the slide bar in FIG. 24 isdisplayed by computing the initial angle in the initial molecularstructure. When the rotation array is determined, the bond axes B2 andB4 are subjected to a rotation computation (or operation) by the secondhalf of the process (algorithm) shown in FIG. 23 and become bond axesB′2 and B′4, and the Cartesian coordinates of the atoms A3 and A5 aremodified to A′3 and A′5 by adding the vector from the atom A1, so as tomodify the molecular structure in the main window. When the mouse 104 isreleased, it is regarded that the rotation has ended, and the rotationoperation is ended by clearing the selection information and the setinformation. By these operations, the three-dimensional molecularstructure displayed in the main window on the screen 102 a of thedisplay 102 becomes as shown in FIG. 25. FIG. 25 shows the result for acase where a rotation from the initial angle of 120 degrees to −66degrees is made by the drag-and-drop of the mouse 104.

In FIG. 21, it is assumed for the sake of convenience that B1 and B2 arethe selected bond axes, the ring flag is “false”, A2 is the atom at thefixed end, B2 and B4 are the bond axes that are the rotation target, andA1→A2×A1→A3 is the rotary axis. If the rotation computation is denotedby R, B′2=RB2 and B′4=RB4 stand, and the coordinate modifications of A3and A5 are respectively represented by A′3=A1+B′2 and A′5=A′3+B′4.

(Modification of Dihedral Angle)

FIG. 26 is a diagram for explaining a modification of a dihedral angle.FIG. 26 shows a state where the atom that is the rotation target isbonded to a fixed atom and immobile atoms via bond axis that is a rotaryaxis.

With respect to the data structures shown in FIG. 1 prepared by the userby the process shown in FIG. 7, three items of the bond axis datastructure B are selected. If it is assumed for the sake of conveniencethat the selected items are identification numbers b1, b2 and b3, aselection bit of the event flag belonging to the bond axis data havingthe identification numbers b1, b2 and b3 is set. In this state, when theevent information of the molecule data structure M is set to“modification of dihedral angle”, a “modification of dihedral angle” bitis set in the event flag of the molecule data structure M, by regardingthat the bond axis data structure B has three continuous (linked) thebond axis data only when the atomic data of one of the terminal atomsbelonging to the bond axis data having the identification number b1includes the bond axis having the identification number b1 (b3) and theatomic data of one of the terminal atoms belonging to the bond axis datahaving the identification number b2 (b3) includes the bond axis havingthe identification number b3 (b2). The selection bit of theidentification flag of all bond axis set data linked by bond axes otherthan the bond axis data having the identification numbers ab1 to b1 (orother than the bond axis data having the identification numbers ab3(ab2) to b3 (b2)) is set, with respect to both terminal atoms (havingidentification numbers ab1 and ab3 (ab2)) of the bond axis data havingthe identification numbers b1 and b3 (b2). If the terminal atoms of thebond axis include the atom having the identification number ab2 (orab3), it is determined that the bond axis data having the identificationnumbers b1 and b2 (b3) (or, having the identification number b3 and b2(b1)) belong to the inside of a ring structure. In this case, a ring bitof the identification flag belonging to the terminal atom data is set.With respect to the bond axis set belonging to the terminal atom data inwhich the ring bit is set, the selection bit of the identification flagis cleared (or reset) so as to exclude the bond axis set from the targetof the rotation operation. If the ring bit is not set, the number ofselection bits of the bond axes linked from the atom having theidentification number ab1 and the number of selection bits of the bondaxes linked from the atom having the identification number ab3 (ab2) arecompared, and the smaller number of selection bits is maintained whilethe larger number of selection bits is cleared (or reset). Thereafter,the bond axis having the selection bit is represented as the rotationtarget.

If not only the three continuous bond axes but one of the two terminalatoms is also selected, the operation described above is carried outonly with respect to the bond axis set linked to the selected atom orthe atom that is not selected.

The dihedral angle is computed by making a drag-and-drop by the pointingdevice on the displayed molecular structure or, is determined by makinga drag-and-drop in a command area other than a molecule display area inthe main window or by setting the angle from the keyboard, and theprocess moves to the rotation operation. When the dihedral angle isspecified by the drag-and-drop, the rotation operation is continuouslycarried during the dragging.

The rotation operation sets the “modification of dihedral angle” bit tothe event flag of the bond axis data having the specified identificationnumbers b1, b2 and b3, and sets to the rotary axis a vector v3 that isperpendicular to both a vector v1 that is perpendicular to both the bondaxes having the identification numbers b1 and b2 (b3) and a vector v2that is perpendicular to both the bond axes having the identificationnumbers b2 and b3. The direction of the rotary axis is taken from thefixed end towards the rotation target. The rotation operation computesthe rotation array or the quatemion from the rotary axis and therotation angle, and makes the rotation array or the quatemion act on thebond axis that is the rotation target. Thereafter, the vectorinformation of the bond axis is traced from one appropriate atom so asto reform the Cartesian coordinates of the atom data structure A, andthe modified molecular structure is displayed in the main window.

FIG. 27 is a diagram for explaining the modification of the dihedralangle by taking the formic acid (HCOOH) as an example. FIGS. 28 and 29are flow charts for explaining the modification of the dihedral angle,and FIGS. 30 and 31 are diagrams showing a display screen when makingthe modification of the dihedral angle. FIG. 30 shows the process fromthe operation of selecting the bond axis item (also the atom item ifnecessary) up to the setting of a ring existence flag, and FIG. 31 showsthe process from the setting of the rotation target and the rotationcomputation up to the actual modification of the structure.

In FIG. 28, a step S41 selects three arbitrary continuous bond axes Bi,Bi′ and Bi″. It is assumed for the sake of convenience that terminalatoms of the bond axes Bi, Bi′ and Bi″ are A_(Bi), A_(BiBi′),A_(Bi′Bi′″), and A_(Bi″). A step S42 sets a dihedral angle adjustingflag of the three bond axes Bi, Bi′ and Bi″, that is, sets the“modification of dihedral angle” bit to the event information flag ofthe molecular data. A step S43 judges whether or not only the bond axesBi, Bi′ and Bi″ are selected as the bond axes and no atom is selected oronly the terminal atom A_(Bi) (or A_(Bi″)) is selected. If the judgementresult in the step S43 is NO, the process advances to a step S69 shownin FIG. 29 which will be described later. On the other hand, if thejudgement result in the step S43 is YES, a step S44 judges whether ornot the terminal atom A_(Bi) (or A_(Bi″)) has a bond axis Bi′″ that isnot yet set. If the judgement result in the step S44 is NO, the processadvances to a step S52 shown in FIG. 29 which will be described later.

If the judgement result in the step S44 is YES, a step S45 sets theattribute of the bond axis Bi′″ to R_(Bi) (or R_(Bi″)), and moves to theterminal atom opposite to the terminal atom A_(Bi) (or A_(Bi)″) withrespect to the bond axis Bi′″. A step S46 judges whether or not thepresent atom has a bond axis that has not yet been set. If the judgementresult in the step S46 is YES, a step S47 sets the attribute of the bondaxis that is not yet set to R_(Bi) (or R_(Bi″)), and moves to theterminal atom on the opposite end. If the judgement result in the stepS46 is NO, a step S48 moves to the immediately preceding atom, that is,the atom on the opposite end of the bond axis that is set. After thestep S47 or S48, a step S49 judges whether or not the present atom isA_(Bi″) or A_(Bi′Bi″) (or, A_(Bi) or A_(BiBi′)). If the judgement resultin the step S49 is NO, a step S50 judges whether or not the present atomis A_(Bi) (or A_(Bi″)). On the other hand, if the judgement result inthe step S49 is YES, a step S51 sets “true” to the ring existence flag(sets the ring bit of the identification flag). If the judgement resultin the step S50 is YES, the process returns to the step S44. If thejudgement result in the step S50 is NO or, after the step S51, theprocess returns to the step S46.

In FIG. 29, the step S52 judges whether or not the ring existence flagis “false” (the ring bit of the identification flag is not set). If thejudgement result in the step S52 is NO, the process advances to the stepS69 which will be described later. If the judgement result in the stepS52 is YES, a step S53 judges whether or not the atom A_(Bi) (orA_(Bi″)) has been selected. If the judgement result in the step S53 isYES, a step S54 sets the atom A_(Bi) (or A_(Bi″)) to the fixed end. Ifthe judgement result in the step S53 is NO, a step S55 judges whether ornot the atom number of the attribute R_(Bi) is lager than the atomnumber of the attribute R_(Bi″). If he judgement result in the step S55is YES, a step S56 sets the atom A_(Bi) to the fixed end. If thejudgement result in the step S55 is NO, a step S57 sets the atom A_(Bi″)to the fixed end. After the step S54 or, the step S56 or, the step S57,the process advances to a step S58.

The step S58 judges whether or not the atom A_(Bi) is the fixed end. Ifthe judgement result in the step S58 is YES, a step S59 sets the bondaxis of the attribute R_(Bi″) and the bond axis Bi″ to vectors that arethe target of the rotation operation, and a step S60 sets a vectorA_(BiBi″)→A_(BiBi″) to the rotary axis. On the other hand, if thejudgement result in the step S58 is NO, a step S61 sets the bond axis ofthe attribute R_(Bi) and the bond axis Bi to the vectors that are thetarget of the rotation operation, and a step S62 sets a vectorA_(Bi′Bi″)→A_(BiBi″) to the rotary axis. After the step S60 or S62, theprocess advances to a step S63.

The step S63 sets the initial value of the dihedral angle from the plane(or surface) that is formed by the bond axis Bi and Bi′ and a plane (orsurface) that is formed by the bond axis Bi′ and Bi″. A step S64 adjuststhe dihedral angle. A step S65 acquires rotation angle informationcorresponding to a difference between the previous dihedral angle andthe present dihedral angle, and carries out a rotation operation withrespect to the vector that is the target (that is, the target vector). Astep S66 reforms the molecular structure by modifying the atomiccoordinates based on the acquired vector information. A step S67 judgeswhether or not the adjustment of the dihedral angle has ended, and theprocess returns to the step S64 if the judgement result in the step S67is NO. If the judgement result in the step S67 is YES, a step S68 clears(or resets) the selection of the bond axis that is the rotationoperation target. In addition, the step S69 clears (or resets) the setinformation, and the process ends.

Accordingly, first, the bond axes B2, B3 and B4 and the atom A5 shown inFIG. 27 are selected. Since the bond axes B2, B3 and B4 are linked andthe atom A5 is a terminal atom of the bond axis B4 and is not a terminalatom of the bond axis B2, the process can reach the second half of theprocess (algorithm) shown in FIG. 28. When the rotation angle adjustingflag is set (the “modification of dihedral angle” bit is set to theevent information flag of the molecular data) after this selection, abond axis set (or group) R_(A1) (B3) linked to the bond axes includingthe bond axis B3 but not including the bond axis B2 is selected usingthe terminal atom A1, which is the terminal atom of the bond axis B2 anda terminal atom of the bond axis B3, as the base point according to arecursive process (algorithm) in the second half of the process shown inFIG. 28, and a check is made to determine whether or not the ringexistence flag is to be set to “true” (whether or not to set the ringbit of the identification flag belonging to the terminal atom A3, whichis the terminal atom of both the bond axes B2 and B4) with respect tothe bond axis set R_(A1). If the ring existence flag of the bond axisset R_(A1) is “true”, the rotation operation target no longer exists,and thus, the set information is cleared and the rotation operation isended. By these operations, the three-dimensional molecular structuredisplayed in the main window on the screen 102 a of the display 102becomes as shown in FIG. 30. Because the formic acid (HCOOH) shown inFIG. 30 does not have a ring structure, the rotation operation ispossible in this state.

If the rotation operation becomes possible by the processes describedabove, the selection bit is set to the bond axis B3 included in the bondaxis set R_(A1), so as to set the bond axis B3 as the rotation target,by the first half of the process (algorithm) shown in FIG. 29. Therotary axis of the bond axis B3 is set to a vector having the directionA3→A1 in a direction of the bond axis B2. This embodiment uses analgorithm that determines the rotation array from the rotary axis andthe rotation angle, by displaying a slide bar in the command window thatis displayed in the main window, and determining the rotation angle by adrag-and-drop of the slide bar by the mouse 104. The initial angle ofthe slide bar in FIG. 30 is displayed by computing the initial angle inthe initial molecular structure. When the rotation array is determined,the bond axis B3 is subjected to a rotation computation (or operation)by the second half of the process (algorithm) shown in FIG. 29 andbecomes a bond axes B′3, and the Cartesian coordinates of the atoms A4are modified to A′4 by adding the vector from the atom A1, so as tomodify the molecular structure in the main window. When the mouse 104 isreleased, it is regarded that the rotation has ended, and the rotationoperation is ended by clearing the selection information and the setinformation. By these operations, the three-dimensional molecularstructure displayed in the main window on the screen 102 a of thedisplay 102 becomes as shown in FIG. 31. FIG. 31 shows the result for acase where a rotation from the initial dihedral angle of −179 degrees to74 degrees is made by the drag-and-drop of the mouse 104.

In FIG. 27, it is assumed for the sake of convenience that B2, B3, B4and B5 are the selected bond axes, the ring flag is “false”, A5 is theatom at the fixed end, B3 is the bond axis that is the rotation target,and A3→A1 is the rotary axis. If the rotation computation is denoted byR, B′3=RB3 stands, and the coordinate modification of A4 is representedby A′4=A1+B′3.

(Expansion and Contraction of Bond Axis)

FIG. 32 is a diagram for explaining expansion and contraction of thebond axis. FIG. 32 shows a state where the atom that is the movingtarget is bonded to a fixed atom via a bond axis that is an expandingand contracting axis.

With respect to the data structures shown in FIG. 1 prepared by the userby the process shown in FIG. 7, one item of the bond axis data structureB is selected. If it is assumed for the sake of convenience that theselected item is an identification number b1, a selection bit of theevent flag belonging to the bond axis data having the identificationnumber b1 is set. In this state, when the event information of themolecule data structure M is set to “expansion and contraction”, a“expansion and contraction” bit is set in the event flag of the moleculedata structure M, and the selection bit of the identification flag ofall bond axis set data linked by bond axes other than the bond axis datahaving the identification number b1 is set, with respect to bothterminal atoms (having identification numbers a1 and a2) of the bondaxis data having the identification number b1. If the terminal atoms ofthe bond axis include the atom having the identification number a1 ora2, it is determined that the bond axis data having the identificationnumber b1 belongs to the inside of a ring structure. In this case, aring bit of the identification flag belonging to the terminal atom datais set. With respect to the bond axis set belonging to the terminal atomdata in which the ring bit is set, the selection bit of theidentification flag is cleared (or reset) so as to exclude the bond axisset from the target of the expansion and contraction operation. If thering bit is not set, the number of selection bits of the bond axeslinked from the atom having the identification number a1 and the numberof selection bits of the bond axes linked from the atom having theidentification number a2 are compared, and the smaller number ofselection bits is maintained while the larger number of selection bitsis cleared (or reset). Thereafter, the bond axis having the selectionbit is represented as the moving target.

If not only the bond axis but one of the terminal atoms is alsoselected, the operation described above is carried out only with respectto the bond axis set linked to the selected atom or the atom that is notselected.

The contraction scale is computed by making a drag-and-drop by thepointing device on the displayed molecular structure or, is determinedby making a drag-and-drop in a command area other than a moleculedisplay area in the main window or by setting the contraction scale fromthe keyboard, and the process moves to the expansion and contractionoperation. When the contraction scale of the bond axis is specified bythe drag-and-drop, the expansion and contraction rotation operation iscontinuously carried during the dragging.

The expansion and contraction operation sets the “expansion andcontraction” bit to the event flag of the bond axis data having thespecified identification number b1, and modifies the vector informationof the bond axis having the identification number b1 depending on thecontraction scale. Thereafter, the vector information of the bond axisthat is the target of the expansion and contraction operation is tracedfrom the terminal atom of the bond axis having the identification numberb1 so as to reform the Cartesian coordinates of the atom data structureA, and the modified molecular structure is displayed in the main window.

FIG. 33 is a diagram for explaining the expansion and contraction of thebond axis by taking the formic acid (HCOOH) as an example. FIGS. 34 and35 are flow charts for explaining the expansion and contraction of thebond axis, and FIGS. 36 and 37 are diagrams showing a display screenwhen making the expansion and contraction operation. FIG. 36 shows theprocess from the operation of selecting the bond axis item (also theatom item if necessary) up to the setting of a ring existence flag, andFIG. 37 shows the process from the setting of the moving target and theexpansion and contraction computation up to the actual modification ofthe structure.

In FIG. 34, a step S71 selects an arbitrary bond axis Bi. It is assumedfor the sake of convenience that terminal atoms of the bond axis Bi areA_(B1) and A_(B2). A step S72 sets a bond axis length adjusting flag ofthe bond axis Bi, that is, sets the “expansion and contraction” bit tothe event information flag of the molecular data. A step S73 judgeswhether or not only the bond axis Bi is selected as the bond axis and noatom is selected or only the terminal atom A_(B1) (or A_(B2)) isselected. If the judgement result in the step S73 is NO, the processadvances to a step S99 shown in FIG. 35 which will be described later.On the other hand, if the judgement result in the step S73 is YES, astep S74 judges whether or not the terminal atom A_(B1) (or A_(B2)) hasa bond axis Bi′ that is not yet set. If the judgement result in the stepS74 is NO, the process advances to a step S82 shown in FIG. 35 whichwill be described later.

If the judgement result in the step S74 is YES, a step S75 sets theattribute of the bond axis Bi′ to R_(B1) (or R_(B2)), and moves to theterminal atom opposite to the terminal atom A_(B1) (or A_(B2)) withrespect to the bond axis Bi′. A step S76 judges whether or not thepresent atom has a bond axis that has not yet been set. If the judgementresult in the step S76 is YES, a step S77 sets the attribute of the bondaxis that is not yet set to R_(B1) (or R_(B2)), and moves to theterminal atom on the opposite end. If the judgement result in the stepS76 is NO, a step S78 moves to the immediately preceding atom, that is,the atom on the opposite end of the bond axis that is set. After thestep S77 or S78, a step S79 judges whether or not the present atom isA_(B2) (or A_(B1)). If the judgement result in the step S79 is NO, astep S80 judges whether or not the present atom is A_(B1) (or A_(B2)).On the other hand, if the judgement result in the step S79 is YES, astep S81 sets “true” to the ring existence flag (sets the ring bit ofthe identification flag). If the judgement result in the step S80 isYES, the process returns to the step S74. If the judgement result in thestep S80 is NO or, after the step S81, the process returns to the stepS76.

In FIG. 35, the step S82 judges whether or not the ring existence flagis “false” (the ring bit of the identification flag is not set). If thejudgement result in the step S82 is NO, the process advances to the stepS99 which will be described later. If the judgement result in the stepS82 is YES, a step S83 judges whether or not the atom A_(B1) (or A_(B2))has been selected. If the judgement result in the step S83 is YES, astep S84 sets the atom A_(B1) (or A_(B2)) to the fixed end. If thejudgement result in the step S83 is NO, a step S85 judges whether or notthe atom number of the attribute R_(B1) is lager than the atom number ofthe attribute R_(B2). If he judgement result in the step S85 is YES, astep S86 sets the atom A_(B1) to the fixed end. If the judgement resultin the step S85 is NO, a step S87 sets the atom A_(B2) to the fixed end.After the step S84 or, the step S86 or, the step S87, the processadvances to a step S88.

The step S88 judges whether or not the atom A_(B1) is the fixed end. Ifthe judgement result in the step S88 is YES, a step S89 sets the bondaxis of the attribute R_(B2) to a vector that is the target of theexpansion and contraction operation, and a step S90 sets a vectorA_(B1)→A_(B2) in an expanding and contracting direction. On the otherhand, if the judgement result in the step S88 is NO, a step S91 sets thebond axis of the attribute R_(B1) to the vector that is the target ofthe expansion and contraction operation, and a step S92 sets a vectorA_(B2)→A_(B1) in the expanding and contracting direction. After the stepS90 or S92, the process advances to the step S93.

The step S93 sets the bond length of the bond axis Bi to the initialvalue. A step S94 adjusts the bond length. A step S95 acquires bondlength information corresponding to a difference between the previousbond length and the present bond length, and carries out an expansionand contraction operation with respect to the vector that is the target(that is, the target vector). A step S96 reforms the molecular structureby modifying the atomic coordinates based on the acquired vectorinformation. A step S97 judges whether or not the adjustment of the bondlength has ended, and the process returns to the step S94 if thejudgement result in the step S97 is NO. If the judgement result in thestep S97 is YES, a step S98 clears (or resets) the selection of the bondaxis that is the expansion and contraction operation target. Inaddition, the step S99 clears (or resets) the set information, and theprocess ends.

Accordingly, first, the bond axis B2 and the atom A3 shown in FIG. 33are selected. Since the atom A3 is a terminal atom of the bond axis B2,the process can reach the second half of the process (algorithm) shownin FIG. 34. When the bond length adjusting flag is set (the “expansionand contraction” bit is set to the event information flag of themolecular data) after this selection, a bond axis set (or group) R_(A1)(B1, B3) linked to the bond axes not including the bond axis B2 isselected using the terminal atom A1 as the base point according to arecursive process (algorithm) in the second half of the process shown inFIG. 34, and a check is made to determine whether or not the ringexistence flag is to be set to “true” (whether or not to set the ringbit of the identification flag belonging to the terminal atom A3) withrespect to the bond axis set R_(A1). If the ring existence flag of thebond axis set R_(A1) is “true”, the moving operation target of theexpansion and contraction no longer exists, and thus, the setinformation is cleared and the moving operation is ended. By theseoperations, the three-dimensional molecular structure displayed in themain window on the screen 102 a of the display 102 becomes as shown inFIG. 36. Because the formic acid (HCOOH) shown in FIG. 36 does not havea ring structure, the expansion and contraction operation is possible inthis state.

If the expansion and contraction operation becomes possible by theprocesses described above, the bond axis B2 is set to the expanding andcontracting axis, with respect to the bond axes B1 and B3 that are themoving targets and are included in the bond axis set R_(A1), by thefirst half of the process (algorithm) shown in FIG. 35. This embodimentuses an algorithm that determines the contraction scale by displaying aslide bar in the command window that is displayed in the main window,and determining the contraction scale by a drag-and-drop of the slidebar by the mouse 104. When the contraction scale is determined, the bondaxis B2 is subjected to an expansion and contraction computation (oroperation) by the second half of the process (algorithm) shown in FIG.35 and become a bond axis B′2, and the Cartesian coordinates of theatoms A1, A2 and A4 are modified to A′1, A′2 and A′4 by adding thevector from the atom A3, so as to modify the molecular structure in themain window. When the mouse 104 is released, it is regarded that theexpansion and contraction has ended, and the expansion and contractionoperation is ended by clearing the selection information and the setinformation. By these operations, the three-dimensional molecularstructure displayed in the main window on the screen 102 a of thedisplay 102 becomes as shown in FIG. 37. FIG. 37 shows the result for acase where the bond length is expanded to 1.8 times by the drag-and-dropof the mouse 104.

In FIG. 33, it is assumed for the sake of convenience that B2 is theselected bond axis, A3 is the selected atom, the ring flag is “false”,A3 is the atom at the fixed end, and B2 is the bond axis that is theexpansion and contraction target. If the expansion and contractioncomputation is denoted by S, B′2=SB2 stands, and the coordinatemodifications of A1, A2 and A4 are respectively represented byA′1=A3+B′2, A′2=A′1+B1 and A′4=A′1+B3.

The free rotation around the atom, the rotation around the bond axis,the angle modification between the two axes, the modification of thedihedral angle, and the expansion and contraction of the bond axisdescribed above may be approximately combined. In addition, compared tothe conventional technique, it is easier to make the operation toarbitrarily modify the molecular structure and to make the entireoperation to form the molecular structure, because the information oftwo terminal atoms, the vector information and the flag information areincluded in all of the bond axes, and all bond axis information,coordinates and flag information are included in all of the atoms.

This application claims the benefit of a Japanese Patent Application No.2006-310564 filed Nov. 16, 2006, in the Japanese Patent Office, thedisclosure of which is hereby incorporated by reference.

Further, the present invention is not limited to these embodiments, butvarious variations and modifications may be made without departing fromthe scope of the present invention.

1. A molecule design support apparatus comprising: an input part; adisplay configured to display on a screen thereof a three-dimensionalmolecular structure by a half vector format or a ball-and-stick format;a determining part configured to determine, in the molecular structure,an end that is to become a target of a coordinate modification withrespect to a molecule in its entirety, in response to a bond axis of themolecule specified from the input part; a modifying part configured tomake a modification of the molecular structure based on the specifiedbond axis and the end that is the target of the coordinate modification,in response to the modification specified from the input part, said,modification including at least one of a free rotation around an atom, arotation around a bond axis, an angular modification between two axes, amodification of a dihedral angle, and an expansion and contraction of abond axis; and a display part configured to display a modified molecularstructure on the screen of the display based on a determination made bythe determining part and the modification made by the modifying part. 2.The molecule design support apparatus as claimed in claim 1, wherein:said determining part determines the end that is to become the target ofthe coordinate modification with respect to the molecule in itsentirety, based on one bond axis of the molecule or, said one bond axisand one of two terminal atoms of said one bond axis specified from theinput part; and said modifying part makes the free rotation around theatom by an angle specified from the input part, by making a freerotation around an atom located on an end, of the specified bond axis,other than the target of the coordinate modification, based on said onebond axis or, said one bond axis and one of two terminal atoms of saidone bond axis in the ball-and-stick format.
 3. The molecule designsupport apparatus as claimed in claim 1, wherein: said determining partdetermines the end that is to become the target of the coordinatemodification with respect to the bond axis, based on one bond axis ofthe molecule or, said one bond axis and one of two terminal atoms ofsaid one bond axis in the ball-and-stick format specified from the inputpart; and said modifying part makes the rotation around the specifiedbond axis by an angle specified from the input part, by making therotation around the specified bond axis, based on said one bond axis or,said one bond axis and said one of the two terminal atoms of said onebond axis.
 4. The molecule design support apparatus as claimed in claim1, wherein: said determining part determines the end that is to becomethe target of the coordinate modification with respect to the moleculein its entirety, based on two continuous bond axes of the molecule or,said two continuous bond axes and one of two terminal atoms of said twocontinuous bond axes in the ball-and-stick format specified from theinput part; and said modifying part makes a modification of the anglebetween two specified bond axes by an angle specified from the inputpart, by modifying an angle between said two continuous bond axes, basedon said two continuous bond axes or, said two continuous bond axes andone of the two terminal atoms of said two continuous bond axes in theball-and-stick format.
 5. The molecule design support apparatus asclaimed in claim 1, wherein: said determining part determines the endthat is to become the target of the coordinate modification with respectto the molecule in its entirety, based on three continuous bond axes ofthe molecule or, said three continuous bond axes and one of two terminalatoms of said three continuous bond axes in the ball-and-stick formatspecified from the input part; and said modifying part makes a rotationof the dihedral angle around a center bond axis of the three specifiedcontinuous bond axes by an angle specified from the input part, byrotating the center bond axis of said three continuous bond axes, basedon said three continuous bond axes or, said three continuous bond axesand one of the two terminal atoms of said three continuous bond axes inthe ball-and-stick format.
 6. The molecule design support apparatus asclaimed in claim 1, wherein: said determining part determines the endthat is to become the target of the coordinate modification with respectto the bond axis, based on one bond axis of the molecule or, said onebond axis and one of two terminal atoms of said one bond axis in theball-and-stick format specified from the input part; and said modifyingpart makes an expansion and contraction of the specified bond axis by acontraction scale specified from the input part, based on said one bondaxis or, said one bond axis and one of the two terminal atoms of saidone bond axis in the ball-and-stick format.
 7. The molecule designsupport apparatus as claimed in claim 1, wherein said determining partsets, as the target of the coordinate modification, only a bond axis sethaving a smaller bond axis number, from among a plurality of bond axissets including bond axes linked to a bond axis other than the specifiedbond axis, with respect to two terminal atoms of the specified bondaxis, when only the bond axis or continuous bond axes are specified fromthe input part.
 8. The molecule design support apparatus as claimed inclaim 1, wherein said determining part sets, as the target of thecoordinate modification, only a bond axis set including bond axes linkedto a bond axis other than the specified bond axis using a specified atomor an atom that is not specified as a base point, when the bond axis orcontinuous bond axes are specified from the input part and one of twoterminal atoms of the specified bond axis is further specified from theinput part.
 9. The molecule design support apparatus as claimed in claim1, wherein said determining part excludes from the target of thecoordinate modification a bond axis set including bond axes linked to abond axis other than the specified bond axis with respect to one of twoterminal atoms of the bond axis or continuous bond axes specified fromthe input part, when the bond axis set includes a bond axis linked to abond axis other than the specified bond axis with respect to the otherterminal atom of the bond axis or continuous bond axes specified fromthe input part.
 10. A computer-readable storage medium which stores aprogram for causing a computer, having an input part, to realize amolecule design support function, said program comprising: a determiningprocedure causing the computer to determine, in a three-dimensionalmolecular structure that is displayed by a half vector format or aball-and-stick format on a screen of a display, an end that is to becomea target of a coordinate modification with respect to a molecule in itsentirety, in response to a bond axis of the molecule specified from theinput part; a modifying procedure causing the computer to make amodification of the molecular structure based on the specified bond axisand the end that is the target of the coordinate modification, inresponse to the modification specified from the input part, saidmodification including at least one of a free rotation around an atom, arotation around a bond axis, an angular modification between two axes, amodification of a dihedral angle, and an expansion and contraction of abond axis; and a display procedure causing the computer to display amodified molecular structure on the screen of the display based on adetermination made by the determining procedure and the modificationmade by the modifying procedure.
 11. The computer-readable storagemedium as claimed in claim 10, wherein: said determining procedurecauses the computer to determine the end that is to become the target ofthe coordinate modification with respect to the molecule in itsentirety, based on one bond axis of the molecule or, said one bond axisand one of two terminal atoms of said one bond axis specified from theinput part; and said modifying procedure causes the computer to make thefree rotation around the atom by an angle specified from the input part,by making a free rotation around an atom located on an end, of thespecified bond axis, other than the target of the coordinatemodification, based on said one bond axis or, said one bond axis and oneof two terminal atoms of said one bond axis in the ball-and-stickformat.
 12. The computer-readable storage medium as claimed in claim 10,wherein: said determining procedure causes the computer to determine theend that is to become the target of the coordinate modification withrespect to the bond axis, based on one bond axis of the molecule or,said one bond axis and one of two terminal atoms of said one bond axisin the ball-and-stick format specified from the input part; and saidmodifying procedure causes the computer to make the rotation around thespecified bond axis by an angle specified from the input part, by makingthe rotation around the specified bond axis, based on said one bond axisor, said one bond axis and said one of the two terminal atoms of saidone bond axis.
 13. The computer-readable storage medium as claimed inclaim 10, wherein: said determining procedure causes the computer todetermine the end that is to become the target of the coordinatemodification with respect to the molecule in its entirety, based on twocontinuous bond axes of the molecule or, said two continuous bond axesand one of two terminal atoms of said two continuous bond axes in theball-and-stick format specified from the input part; and said modifyingprocedure causes the computer to make a modification of the anglebetween two specified bond axes by an angle specified from the inputpart, by modifying an angle between said two continuous bond axes, basedon said two continuous bond axes or, said two continuous bond axes andone of the two terminal atoms of said two continuous bond axes in theball-and-stick format.
 14. The computer-readable storage medium asclaimed in claim 10, wherein: said determining procedure causes thecomputer to determine the end that is to become the target of thecoordinate modification with respect to the molecule in its entirety,based on three continuous bond axes of the molecule or, said threecontinuous bond axes and one of two terminal atoms of said threecontinuous bond axes in the ball-and-stick format specified from theinput part; and said modifying procedure causes the computer to make arotation of the dihedral angle around a center bond axis of the threespecified continuous bond axes by an angle specified from the inputpart, by rotating the center bond axis of said three continuous bondaxes, based on said three continuous bond axes or, said three continuousbond axes and one of the two terminal atoms of said three continuousbond axes in the ball-and-stick format.
 15. The computer-readablestorage medium as claimed in claim 10, wherein: said determiningprocedure causes the computer to determine the end that is to become thetarget of the coordinate modification with respect to the bond axis,based on one bond axis of the molecule or, said one bond axis and one oftwo terminal atoms of said one bond axis in the ball-and-stick formatspecified from the input part; and said modifying procedure causes thecomputer to make an expansion and contraction of the specified bond axisby a contraction scale specified from the input part, based on said onebond axis or, said one bond axis and one of the two terminal atoms ofsaid one bond axis in the ball-and-stick format.
 16. Thecomputer-readable storage medium as claimed in claim 10, wherein saiddetermining procedure causes the computer to set, as the target of thecoordinate modification, only a bond axis set having a smaller bond axisnumber, from among a plurality of bond axis sets including bond axeslinked to a bond axis other than the specified bond axis, with respectto two terminal atoms of the specified bond axis, when only the bondaxis or continuous bond axes are specified from the input part.
 17. Thecomputer-readable storage medium as claimed in claim 10, wherein saiddetermining procedure causes the computer to set, as the target of thecoordinate modification, only a bond axis set including bond axes linkedto a bond axis other than the specified bond axis using a specified atomor an atom that is not specified as a base point, when the bond axis orcontinuous bond axes are specified from the input part and one of twoterminal atoms of the specified bond axis is further specified from theinput part.
 18. The computer-readable storage medium as claimed in claim10, wherein said determining procedure causes the computer to excludefrom the target of the coordinate modification a bond axis set includingbond axes linked to a bond axis other than the specified bond axis withrespect to one of two terminal atoms of the bond axis or continuous bondaxes specified from the input part, when the bond axis set includes abond axis linked to a bond axis other than the specified bond axis withrespect to the other terminal atom of the bond axis or continuous bondaxes specified from the input part.